package com.esyoga.yoyoga.pojo;

import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

@Component
public class TGymAgreementExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public TGymAgreementExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andGaIdIsNull() {
            addCriterion("ga_id is null");
            return (Criteria) this;
        }

        public Criteria andGaIdIsNotNull() {
            addCriterion("ga_id is not null");
            return (Criteria) this;
        }

        public Criteria andGaIdEqualTo(Integer value) {
            addCriterion("ga_id =", value, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdNotEqualTo(Integer value) {
            addCriterion("ga_id <>", value, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdGreaterThan(Integer value) {
            addCriterion("ga_id >", value, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("ga_id >=", value, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdLessThan(Integer value) {
            addCriterion("ga_id <", value, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdLessThanOrEqualTo(Integer value) {
            addCriterion("ga_id <=", value, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdIn(List<Integer> values) {
            addCriterion("ga_id in", values, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdNotIn(List<Integer> values) {
            addCriterion("ga_id not in", values, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdBetween(Integer value1, Integer value2) {
            addCriterion("ga_id between", value1, value2, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaIdNotBetween(Integer value1, Integer value2) {
            addCriterion("ga_id not between", value1, value2, "gaId");
            return (Criteria) this;
        }

        public Criteria andGaGIdIsNull() {
            addCriterion("ga_g_id is null");
            return (Criteria) this;
        }

        public Criteria andGaGIdIsNotNull() {
            addCriterion("ga_g_id is not null");
            return (Criteria) this;
        }

        public Criteria andGaGIdEqualTo(Integer value) {
            addCriterion("ga_g_id =", value, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdNotEqualTo(Integer value) {
            addCriterion("ga_g_id <>", value, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdGreaterThan(Integer value) {
            addCriterion("ga_g_id >", value, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("ga_g_id >=", value, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdLessThan(Integer value) {
            addCriterion("ga_g_id <", value, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdLessThanOrEqualTo(Integer value) {
            addCriterion("ga_g_id <=", value, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdIn(List<Integer> values) {
            addCriterion("ga_g_id in", values, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdNotIn(List<Integer> values) {
            addCriterion("ga_g_id not in", values, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdBetween(Integer value1, Integer value2) {
            addCriterion("ga_g_id between", value1, value2, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaGIdNotBetween(Integer value1, Integer value2) {
            addCriterion("ga_g_id not between", value1, value2, "gaGId");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioIsNull() {
            addCriterion("ga_platformratio is null");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioIsNotNull() {
            addCriterion("ga_platformratio is not null");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioEqualTo(Double value) {
            addCriterion("ga_platformratio =", value, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioNotEqualTo(Double value) {
            addCriterion("ga_platformratio <>", value, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioGreaterThan(Double value) {
            addCriterion("ga_platformratio >", value, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioGreaterThanOrEqualTo(Double value) {
            addCriterion("ga_platformratio >=", value, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioLessThan(Double value) {
            addCriterion("ga_platformratio <", value, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioLessThanOrEqualTo(Double value) {
            addCriterion("ga_platformratio <=", value, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioIn(List<Double> values) {
            addCriterion("ga_platformratio in", values, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioNotIn(List<Double> values) {
            addCriterion("ga_platformratio not in", values, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioBetween(Double value1, Double value2) {
            addCriterion("ga_platformratio between", value1, value2, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaPlatformratioNotBetween(Double value1, Double value2) {
            addCriterion("ga_platformratio not between", value1, value2, "gaPlatformratio");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceIsNull() {
            addCriterion("ga_joinbanlance is null");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceIsNotNull() {
            addCriterion("ga_joinbanlance is not null");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceEqualTo(BigDecimal value) {
            addCriterion("ga_joinbanlance =", value, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceNotEqualTo(BigDecimal value) {
            addCriterion("ga_joinbanlance <>", value, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceGreaterThan(BigDecimal value) {
            addCriterion("ga_joinbanlance >", value, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ga_joinbanlance >=", value, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceLessThan(BigDecimal value) {
            addCriterion("ga_joinbanlance <", value, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ga_joinbanlance <=", value, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceIn(List<BigDecimal> values) {
            addCriterion("ga_joinbanlance in", values, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceNotIn(List<BigDecimal> values) {
            addCriterion("ga_joinbanlance not in", values, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ga_joinbanlance between", value1, value2, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaJoinbanlanceNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ga_joinbanlance not between", value1, value2, "gaJoinbanlance");
            return (Criteria) this;
        }

        public Criteria andGaStateIsNull() {
            addCriterion("ga_state is null");
            return (Criteria) this;
        }

        public Criteria andGaStateIsNotNull() {
            addCriterion("ga_state is not null");
            return (Criteria) this;
        }

        public Criteria andGaStateEqualTo(Integer value) {
            addCriterion("ga_state =", value, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateNotEqualTo(Integer value) {
            addCriterion("ga_state <>", value, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateGreaterThan(Integer value) {
            addCriterion("ga_state >", value, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("ga_state >=", value, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateLessThan(Integer value) {
            addCriterion("ga_state <", value, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateLessThanOrEqualTo(Integer value) {
            addCriterion("ga_state <=", value, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateIn(List<Integer> values) {
            addCriterion("ga_state in", values, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateNotIn(List<Integer> values) {
            addCriterion("ga_state not in", values, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateBetween(Integer value1, Integer value2) {
            addCriterion("ga_state between", value1, value2, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaStateNotBetween(Integer value1, Integer value2) {
            addCriterion("ga_state not between", value1, value2, "gaState");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeIsNull() {
            addCriterion("ga_signtime is null");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeIsNotNull() {
            addCriterion("ga_signtime is not null");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeEqualTo(String value) {
            addCriterion("ga_signtime =", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeNotEqualTo(String value) {
            addCriterion("ga_signtime <>", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeGreaterThan(String value) {
            addCriterion("ga_signtime >", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeGreaterThanOrEqualTo(String value) {
            addCriterion("ga_signtime >=", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeLessThan(String value) {
            addCriterion("ga_signtime <", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeLessThanOrEqualTo(String value) {
            addCriterion("ga_signtime <=", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeLike(String value) {
            addCriterion("ga_signtime like", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeNotLike(String value) {
            addCriterion("ga_signtime not like", value, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeIn(List<String> values) {
            addCriterion("ga_signtime in", values, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeNotIn(List<String> values) {
            addCriterion("ga_signtime not in", values, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeBetween(String value1, String value2) {
            addCriterion("ga_signtime between", value1, value2, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaSigntimeNotBetween(String value1, String value2) {
            addCriterion("ga_signtime not between", value1, value2, "gaSigntime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeIsNull() {
            addCriterion("ga_updatetime is null");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeIsNotNull() {
            addCriterion("ga_updatetime is not null");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeEqualTo(String value) {
            addCriterion("ga_updatetime =", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeNotEqualTo(String value) {
            addCriterion("ga_updatetime <>", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeGreaterThan(String value) {
            addCriterion("ga_updatetime >", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeGreaterThanOrEqualTo(String value) {
            addCriterion("ga_updatetime >=", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeLessThan(String value) {
            addCriterion("ga_updatetime <", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeLessThanOrEqualTo(String value) {
            addCriterion("ga_updatetime <=", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeLike(String value) {
            addCriterion("ga_updatetime like", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeNotLike(String value) {
            addCriterion("ga_updatetime not like", value, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeIn(List<String> values) {
            addCriterion("ga_updatetime in", values, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeNotIn(List<String> values) {
            addCriterion("ga_updatetime not in", values, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeBetween(String value1, String value2) {
            addCriterion("ga_updatetime between", value1, value2, "gaUpdatetime");
            return (Criteria) this;
        }

        public Criteria andGaUpdatetimeNotBetween(String value1, String value2) {
            addCriterion("ga_updatetime not between", value1, value2, "gaUpdatetime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}